package com.banquetmanagementsystem.service;


import com.banquetmanagementsystem.common.response.Result;
import com.banquetmanagementsystem.pojo.entity.Dictionary;

/**
 * @author tanghaihua
 */
public interface DictionaryService {
    /**
     * 新增数据字典
     *
     * @param dictionary 数据字典
     * @return 操作结果
     */
    Result<?> insertDictionary(Dictionary dictionary);

    /**
     * 新增数据字典内容
     *
     * @param dictionary 数据字典内容
     * @return 操作结果
     */
    Result<?> insertDictionaryContext(Dictionary dictionary);

    /**
     * 根据id删除数据字典,注意此操作会自动删除数据字典内容
     *
     * @param id 数据字典id
     * @return 操作结果
     */
    Result<?> deleteDictionaryById(Integer id);

    /**
     * 根据id删除数据字典内容
     *
     * @param id 数据字典id
     * @return 操作结果
     */
    Result<?> deleteDictionaryContextById(Integer id);

    /**
     * 获取所有数据字典
     *
     * @return 操作结果与数据
     */
    Result<?> getAllDictionary();

    /**
     * 根据id获取数据字典
     *
     * @param id 数据字典id
     * @return 操作结果和数据字典
     */
    Result<?> getDictionaryById(Integer id);

    /**
     * 根据pId获取数据字典内容
     * @param pId 数据字典Id
     * @return 操作结果和数据字典的内容
     */
    Result<?> getAllDictionaryContextBypId(Integer pId);

    /**
     * 根据id获取数据字典内容
     *
     * @param id 数据字典内容id
     * @return 操作结果和数据字典内容
     */
    Result<?> getDictionaryContextById(Integer id);

    /**
     *修改数据字典（根据id）
     * @param dictionary 要修改的字典
     * @return 操作结果
     */
    Result<?> updateDictionary(Dictionary dictionary);

    /**
     * 修改数据字典内容（根据id）
     * @param dictionary 要修改的字典内容
     * @return 操作结果
     */
    Result<?> updateDictionaryContext(Dictionary dictionary);
}
